<?xml version="1.0"?>
<!-- 
Data Tier Modeler Simple XML Files Schema

To add a link to your XML files, they must be constructed like this:

<?xml version="1.0" encoding="utf-8" ?>
<Model xmlns="http://tempuri.org/SimpleXML.xsd">
...
</Model>
-->
<xs:schema targetNamespace="http://tempuri.org/SimpleXML.xsd" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/SimpleXML.xsd" xmlns:mstns="http://tempuri.org/SimpleXML.xsd" elementFormDefault="qualified" attributeFormDefault="unqualified" id="NewDataSet">
	<xs:simpleType name="typeType">
		<xs:restriction base="xs:string">
			<xs:pattern value="string|bool|char(\[\d+\])?|DateTime|double|int|text|uuid"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="multiplicityType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="1"/>
			<xs:enumeration value="*"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="relationType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="aggregation"/>
			<xs:enumeration value="composition"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:element name="Model">
		<xs:complexType>
			<xs:choice maxOccurs="unbounded">
				<xs:element name="Package">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="Class" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Property" minOccurs="0" maxOccurs="unbounded">
											<xs:complexType>
												<xs:attribute name="name" type="xs:string" form="unqualified"/>
												<xs:attribute name="type" type="typeType" form="unqualified"/>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
									<xs:attribute name="name" type="xs:ID" form="unqualified"/>
									<xs:attribute name="inherit" type="xs:string" use="optional" form="unqualified"/>
									<xs:attribute name="implement" type="xs:string" use="optional" form="unqualified"/>
								</xs:complexType>
							</xs:element>
							<xs:element name="Relationship" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:all>
										<xs:element name="Parent">
											<xs:complexType>
												<xs:attribute name="name" type="xs:string" form="unqualified"/>
												<xs:attribute name="role" type="xs:string" form="unqualified"/>
												<xs:attribute name="multiplicity" type="multiplicityType" form="unqualified"/>
											</xs:complexType>
										</xs:element>
										<xs:element name="Child">
											<xs:complexType>
												<xs:attribute name="name" type="xs:string" form="unqualified"/>
												<xs:attribute name="role" type="xs:string" form="unqualified"/>
												<xs:attribute name="multiplicity" type="multiplicityType" form="unqualified"/>
											</xs:complexType>
										</xs:element>
										<xs:element name="LinkClass" minOccurs="0">
											<xs:complexType>
												<xs:attribute name="name" type="xs:string" form="unqualified"/>
											</xs:complexType>
										</xs:element>
									</xs:all>
									<xs:attribute name="type" type="relationType" form="unqualified"/>
								</xs:complexType>
							</xs:element>
							<xs:element name="Enumeration" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Literal" minOccurs="0" maxOccurs="unbounded">
											<xs:complexType>
												<xs:attribute name="name" type="xs:string" form="unqualified"/>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
									<xs:attribute name="name" type="xs:ID" form="unqualified"/>
								</xs:complexType>
							</xs:element>
							<xs:element name="Singleton" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Property" minOccurs="0" maxOccurs="unbounded">
											<xs:complexType>
												<xs:attribute name="name" type="xs:string" form="unqualified"/>
												<xs:attribute name="type" type="typeType" form="unqualified"/>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
									<xs:attribute name="name" type="xs:ID" form="unqualified"/>
								</xs:complexType>
							</xs:element>
							<xs:element name="Interface" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Property" minOccurs="0" maxOccurs="unbounded">
											<xs:complexType>
												<xs:attribute name="name" type="xs:string" form="unqualified"/>
												<xs:attribute name="type" type="typeType" form="unqualified"/>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
									<xs:attribute name="name" type="xs:ID" form="unqualified"/>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
						<xs:attribute name="name" type="xs:string" use="required" form="unqualified"/>
					</xs:complexType>
				</xs:element>
			</xs:choice>
		</xs:complexType>
	</xs:element>
</xs:schema>
